package com.sjh.lib_app

import android.widget.ImageView
import androidx.annotation.DrawableRes
import androidx.databinding.BindingAdapter
import com.sjh.baseui.picture.ImageBuild
import com.sjh.baseui.picture.ImageScaleType
import com.sjh.baseui.picture.loadUrl
import com.sjh.baseutils.dp

/**
 * 图片加载管理器
 * @author ysj
 * @date 2020/9/3 16:19
 */


/**
 * 加载图片
 * @param url 图片地址  可以是 url 资源文件 等
 * @param isBlur 是否高斯模糊
 * @param isCircle 是否显示为圆形图片
 * @param radius 设置图片圆角宽度
 * @param imageScaleType 图片填充 方式  ImageScaleType
 * @param placeHolder 加载过程占位图
 * @param errorImg 加载错误占位图
 */

@BindingAdapter(
    value = ["loadUrl", "isBlur", "isCircle", "radius", "imageScaleType", "placeHolder","errorImg"],
    requireAll = false
)
fun ImageView.url(
    loadUrl: Any?,
    isBlur: Boolean?=false,
    isCircle: Boolean?=false,
    radius: Float?=0f,
    imageScaleType: ImageScaleType?= ImageScaleType.CenterCrop,
    @DrawableRes placeHolder: Int = 0,
    @DrawableRes errorImg:Int = 0
) {
    val scaleType = ImageBuild.build()
        .isBlur(isBlur ?: false)
        .isCircle(isCircle ?: false)
        .setCornerRadius(radius ?: 0.dp)
        .setScaleType(imageScaleType?: ImageScaleType.CenterCrop)
        .setPlaceImage(placeHolder)
        .setErrorImage(errorImg)
    this.loadUrl(url = loadUrl?:"", any = this.context, build = scaleType)
}

